
#include <iostream>
using namespace std;

/*
    int clock_gettime(clockid_t __clock_id, timespec *__tp) noexcept(true)

        CLOCK_REALTIME              返回当前系统日期和时间(包括闰秒)，可以被 settimeofday 修改。
        CLOCK_MONOTONIC             返回自系统启动以来的时间，无法被修改，适合测量时间间隔。
        CLOCK_PROCESS_CPUTIME_ID    返回当前进程使用的 CPU 时间。
        CLOCK_THREAD_CPUTIME_ID     返回当前线程使用的 CPU 时间。
        CLOCK_MONOTONIC_RAW         返回单调时钟的原始值，不受任何时间调整(如 NTP)的影响。

*/ 

int main(int argc, char const *argv[])
{
    timespec ti;
    timespec ti2;
    clock_gettime(CLOCK_MONOTONIC, &ti);
    
    cout << "系统启动时间：" << ti.tv_sec << "." << ti.tv_nsec << " 秒" << endl;
    
    clock_gettime(CLOCK_MONOTONIC, &ti2);
    cout << "系统启动时间：" << ti.tv_sec << "." << ti.tv_nsec << " 秒" << endl;
    cout << "过去了      : " <<  ti2.tv_nsec  - ti.tv_nsec<< " 纳秒" << endl;

    return 0;
}
